#ifndef __FEATURE_EXTRACTOR_H__
#define __FEATURE_EXTRACTOR_H__

#include <vector>
#include "transaction.h"
#include "situation.h"
#include "date.h"
#include "time.h"

namespace stock_trade{

class FeatureExtractor{
public:
    static std::vector<float> ExtractorRecent3PriceFeature(const std::vector<Transaction>& vecTransaction, Date date, Time time);
    static std::vector<float> ExtractorRecent3ActionFeature(const std::vector<Transaction>& vecTransaction, Date date, Time time);
    static std::vector<float> ExtractorRecent2QualityFeature(const std::vector<Transaction>& vecTransaction, Date date, Time time);
    static std::vector<float> ExtractorSituatuinFeature(const std::vector<Situation>& vecSituation, Date date, Time time);
    static std::vector<float> ExtractorRecentMinute3PriceFeature(const std::vector<Situation>& vecSituation, Date date, Time time);
    static std::vector<float> GetNowPrice(const std::vector<Situation>& vecSituation, Date date, Time time);
    static std::vector<float> GetLongTimePrices(const std::vector<Situation>& vecSituation, Date date, Time time);
    static std::vector<float> MergeFeature(const std::vector<Situation>& vecSituation, const std::vector<Transaction>& vecTransaction, 
            const std::vector<Situation>& vecLongTimeSituation, const std::vector<Transaction>& vecLongTimeTransaction, Date date, Time time);
};
}
#endif
